package com.example.goodsass.controller;


import com.example.goodsass.dto.ArticleInfoSelAllDto;
import com.example.goodsass.domain.ArticleInfo;
import com.example.goodsass.service.ArticleInfoService;
import com.example.goodsass.vo.ArticleInfoVo;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;

/**
 * 文章信息表(ArticleInfo)表控制层
 *
 * @author makejava
 * @since 2025-04-08 20:16:54
 */
@RestController
@RequestMapping("articleInfo")
public class ArticleInfoController {
    /**
     * 服务对象
     */
    @Resource
    private ArticleInfoService articleInfoService;

    /**
     * 分页查询所有数据
     *
     * @param articleInfoSelAllDto 分页对象
     * @param articleInfoSelAllDto 查询实体
     * @return 所有数据
     */
    @Operation( summary= "selectAll")
    @PostMapping("/selectAll")
    public List<ArticleInfoVo> selectAllByPage(@RequestBody ArticleInfoSelAllDto articleInfoSelAllDto) {
        return articleInfoService.selectAllByPage(articleInfoSelAllDto);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    public ArticleInfo selectOne(@PathVariable Serializable id) {
        return this.articleInfoService.getById(id);
    }

    /**
     * 新增数据
     *
     * @param articleInfo 实体对象
     * @return 新增结果
     */
    @PostMapping("insert")
    public String insert(@RequestBody ArticleInfo articleInfo) {
        this.articleInfoService.save(articleInfo);
        return "新增成功，文章编号： " + articleInfo.getArticleNo();
    }

    /**
     * 修改数据
     *
     * @param articleInfo 实体对象
     * @return 修改结果
     */
    @PutMapping("/update")
    public String update(@RequestBody ArticleInfo articleInfo) {
        this.articleInfoService.updateById(articleInfo);
        return "更新成功，文章编号： " + articleInfo.getArticleNo();
    }

    /**
     * 删除数据
     *
     * @param ids 主键结合
     * @return 删除结果
     */
    @PostMapping("/delete")
    public String delete(@RequestParam("ids") String ids) {
        String[] split = ids.split(",");
        this.articleInfoService.removeByIds(Arrays.asList(split));
        return "删除成功";
    }
}

